const laggings = [true, false, true, true, true, false, true];
let lagginIndex = 0;
function getCurrentLaggingState() {
    lagginIndex = lagginIndex % laggings.length;
    let curr = laggings[lagginIndex];
    lagginIndex++;
    return curr;
}
let hung = false;
let count = 0;
let timer;
function startDetection() {
    timer = setInterval(() => {
        const lagging = getCurrentLaggingState();
        if (lagging) {
            count++;
            if (count === 3) {
                hung = true;
                clearInterval(timer);
                setTimeout(() => {
                    hung = false;
                    count = 0;
                    lagginIndex = 0;
                    console.log("restart");
                    startDetection();
                }, 2000);
            }
        } else {
            count = 0;
        }
        console.log(`lagging:${lagging}, hung:${hung}`);
    }, 1000);
}
startDetection();

// 解释：
// 1、整体结构与第一部分类似，新增了startDetection函数来启动检测逻辑，方便后续重新开始检测。
// 2、当hung变为true时，清除当前定时器，使用setTimeout在 2000 毫秒（2 秒）后执行回调函数。
// 在回调函数中，将hung设为false，count重置为 0，lagginIndex重置为 0，打印"restart"，然后再
// 次调用startDetection重新开始每隔 1 秒检测lagging值。